/*************************************************************************
> File Name: two_pointer.cpp
> Author: icebear
> Mail: 3322366195@qq.com
> Created Time: 2023-08-08 09:14:54
> Description:
给定一个长度为 n 的整数数组 height 。有 n 条垂线，第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。

找出其中的两条线，使得它们与 x 轴共同构成的容器可以容纳最多的水。

返回容器可以储存的最大水量。
************************************************************************/

#include <iostream>
#include <vector>
using namespace std;

class Solution
{
public:
    int maxArea(vector<int> &height)
    {
        int i = 0, j = height.size() - 1, res = 0;
        while (i < j)
        {
            res = height[i] < height[j] ? max(res, (j - i) * height[i++]) : max(res, (j - i) * height[j--]);
        }
        return res;
    }
};
int main(int argc, char const *argv[])
{
    Solution s;
    vector v = {1, 8, 6, 2, 5, 4, 8, 3, 7};
    int area = s.maxArea(v);
    cout << area << endl;
    return 0;
}
